Method of tracking discontinuous seismic horizons in seismic images

ABSTRACT

The invention targets in particular a method for searching for a seismic horizon in a seismic image of the subsoil. The method notably comprises the designation of two points belonging to the horizon sought, the iterative search for the best solution for the equation of the seismic horizon notably by virtue of a breakdown of this solution into two components, a pseudo-continuous component and a jump component.

The present invention relates to the field of subsoil seismic image analysis.

It is known practice, notably in oil exploration, to determine the position of oil reservoirs from the results of geophysical measurements performed from the surface or in drilling wells. In the reflection-based seismic technique, these measurements involve the emission into the subsoil of a wave and the measurement of a signal comprising various reflections of the wave on the geological structures being searched. These structures are typically surfaces separating distinct materials, faults, etc. Other measurements are performed from wells. Acoustic waves or an electromagnetic radiation are then sent into the subsoil.

The measurements are processed to reconstruct a model of the subsoil, usually in the form of seismic images, or echographic images. These images can be two-dimensional (seismic sections) or three-dimensional (seismic blocks). A seismic image is made up of pixels whose intensity is representative of a seismic amplitude dependent on local impedance variations.

Geophysicists are used to analyzing such seismic images conveying amplitude information. By visual observation, they can separate areas of the subsoil that have different characteristics in order to determine the structure of the subsoil.

There are automatic methods for extracting structural information from seismic images. In particular, it is known practice to estimate seismic horizons by using a computer to analyze the amplitude gradients in the seismic image. The duly estimated horizons are called “synthesis horizons” in contrast to the horizons determined by manual picking from the images.

One possible method for estimating horizons in a two-dimensional seismic image consists, from a pixel of the image, in searching for the direction in which the local amplitude gradient is minimum. By propagation along this direction, a line representing a synthesis horizon is constructed step by step. If the seismic image is three-dimensional, it is possible to estimate horizons in the form of surfaces transversal to the vertical direction, for example by means of the propagation method described in the French patent no. 2 869 693.

Nevertheless, if the automatic seismic horizon picking is based on the following of continuities in an image or a seismic block, the presence of a discontinuity, such as a fault, may prevent the horizon from being followed or may introduce a bias in the picking of the horizon.

There is thus a need to facilitate the picking of seismic horizons when discontinuities are present.

To this end, the present invention proposes a method for searching for a seismic horizon in a seismic image of the subsoil. This method comprises:

-   -   designating two points of respective coordinates x₁, y₁ and         x_(N), y_(N) in the seismic image as being two points belonging         to the horizon searched, an integer number N of discrete         abscissae x₁, x₂, . . . , x_(N) being defined between the         abscissae x₁, x_(N) of the two designated points;     -   considering a fault position at a discrete abscissa x_(n) _(α)         where n_(α) is an integer between 1 and N−1 and a fault         amplitude C_(d) in a discrete domain;     -   by taking two functions f and g₀ which can be derived over the         interval [x₁, x_(N)], initializing a fault amplitude in a         continuous domain with the value C₀=C_(d)−[f(x_(n) _(α)         ₊₁)−f(x_(n) _(α) )], a pseudo-continuous component {tilde over         (τ)}₀(x_(n)) and a jump component {tilde over (τ)}₀(x_(n))         defined over the N discrete abscissae according to {tilde over         (τ)}₀(x_(n))=f(x_(n)) and {circumflex over         (τ)}₀(x_(n))=g₀(x_(n))+C₀·H(n−n_(α)), where H(·) designates the         Heaviside function;     -   performing a number of iterations of a sequence of computation         steps for an iteration index k initialized at k=0 then         incremented by units, the sequence comprising, for an index k:         -   computing a residue r_(k)(x_(n))=∇{tilde over             (τ)}_(k)(x_(n))+∇g_(k)(x_(n))−p(x_(n), {tilde over             (τ)}_(k)(x_(n))+{circumflex over (τ)}_(k)(x_(n))), where ∇             designates the gradient operator and p(x_(n), y) designates             the tangent of an inclination estimated for a position of             discrete abscissa x_(n) and of ordinate y in the seismic             image;         -   solving a Poisson equation Δ(δ{tilde over             (τ)}_(k))=−div(r_(k)) to determine an update term δ{tilde             over (τ)}_(k)(x_(n)), with conditions at the Dirichlet             limits:

$\quad\left\{ \begin{matrix} {{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{1} \right)}} = {y_{1} - {f\left( x_{1} \right)} - {g_{0}\left( x_{1} \right)}}} \\ {{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{N} \right)}} = {y_{N} - {f\left( x_{N} \right)} - {g_{0}\left( x_{N} \right)} - C_{0}}} \end{matrix} \right.$

on the first iteration and

$\quad\left\{ \begin{matrix} {{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{1} \right)}} = {{g_{k - 1}\left( x_{1} \right)} - {g_{k}\left( x_{1} \right)}}} \\ {{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{N} \right)}} = {{g_{k - 1}\left( x_{N} \right)} - {g_{k}\left( x_{N} \right)} + C_{k - 1} - C_{k}}} \end{matrix} \right.$

on each iteration of index k≧1, where g_(k) is a function that can be derived over the interval [x₁, x_(N)];

-   -   -   updating the pseudo-continuous component according to

{tilde over (τ)}_(k+1)(x _(n))={tilde over (τ)}_(k)(x _(n))+δ{tilde over (τ)}_(k)(x _(n));

-   -   -   updating the fault amplitude in the continuous domain             according to

C _(k+1) =C _(d)└{tilde over (τ)}_(k+1)(x _(n) _(α) ₊₁)−{tilde over (τ)}_(k+1)(x _(n) _(α) )┘;

-   -   -   updating the jump component according to

{tilde over (τ)}_(k+1)(x _(n))=g _(k+1)(x _(n))+C _(k+1) ·H(n−n _(α));

-   -   -   if a final value of the index of iteration k is reached,             computing a function τ_(n) _(α) _(,C) _(d) (x_(n))             representing the ordinate in the seismic image of a horizon             estimated as a function of the discrete abscissa x_(n), from             a sum of the pseudo-continuous component and of the jump             component; and         -   if the final value of the index of iteration k is not             reached, executing the next iteration of the sequence.

For any value of the iteration index k, the functions g_(k) are taken as being functions that can be derived over the interval [x₁, x_(N)]. The choice of these functions can be free and can depend on the implementation in a particular embodiment. In particular, there is not necessarily any general trend formula for following the functions g_(k).

The automated picking of a discontinuous seismic horizon relies on a segmentation into two parts of the horizon by a fault assumed to be almost vertical. It is essential to know two points delimiting the horizon to be reconstructed in the seismic image, and to know or make an assumption concerning the place and the amplitude of the discontinuity. The picking is obtained by solving an equation with the non-linear partial derivatives linking the solution searched to the local orientation of the horizon. The method involves an algorithm that is accurate, robust to noise and offers rapid convergence properties. It makes it possible, if necessary, to apply an effective ad-hoc schema to real seismic data with no a priori knowledge as to the place and the amplitude of the discontinuity.

In one embodiment of the method, the function f is chosen as a constant function. It can notably be taken to be equal to y₁+β·(y_(N)−y₁), β being a real number chosen between 0 and 1. In this case, each function g_(k) can also be taken to be constant, in particular of value −β·C_(k).

To solve the Poisson equation, it is possible to use a discrete Fourier transform DFT and its inverse discrete Fourier transform DFT⁻¹ according to

${\delta \; {\overset{\sim}{\tau}}_{k}} = {{{DFT}^{- 1}\left\lbrack {- \frac{{DFT}\left\lbrack {{div}\left( r_{k} \right)} \right\rbrack}{{DFT}\lbrack\Delta\rbrack}} \right\rbrack}.}$

In particular, it is possible to use a discrete sine transform of type I.

Another subject of the invention is a computer program for a subsoil seismic image processing system, the program comprising instructions for implementing the steps of a method as defined above during an execution of the program by a computer of the seismic image processing system.

Other features and advantages of the invention will become more apparent on reading the following description. This is purely illustrative and should be read in light of the appended drawings in which:

FIG. 1 is a synthesized seismic image portion, in black and white;

FIG. 2 is a graph illustrating a seismic horizon having a discontinuity and introducing notations used in an embodiment according to the invention;

FIG. 3 is a flow diagram of an exemplary iterative solving algorithm in the continuous domain for determining a seismic horizon exhibiting a discontinuity;

FIG. 4 is a graph illustrating a seismic horizon in the discrete domain, exhibiting a discontinuity;

FIG. 5 is a flow diagram of an exemplary iterative solving algorithm in the discrete domain for determining a seismic horizon exhibiting a discontinuity;

FIG. 6 is a flow diagram of a generalized iterative solving algorithm in the discrete domain for determining a seismic horizon exhibiting a discontinuity;

FIG. 7 is a flow diagram of an exemplary solving algorithm equivalent to that of FIG. 6, in which the indices of iterations k are not explicitly shown; and

FIG. 8 shows a flow diagram of an exemplary method for searching for a seismic horizon implementing one of the algorithms illustrated previously.

With reference to FIG. 1, a seismic image commonly takes the form of a matrix of pixels whose intensity corresponds to a seismic amplitude. The seismic amplitude variations reflect variations of impedance with respect to the propagation of the acoustic waves in the subsoil. The representation is often in two colors (not rendered in the figure), one for the negative amplitudes, the other for the positive amplitudes. The image, when it is two-dimensional, may correspond to a two-dimensional integration of vertical seismic plots. It may also correspond to a vertical cross section in a seismic block obtained by three-dimensional integration of vertical seismic plots.

In the seismic image portion represented by way of example in FIG. 1, the abscissae x correspond to a horizontal direction, whereas the ordinates y can correspond either to the vertical direction if the image is migrated in depth, or to time if the image is migrated in time. Seismic horizons can be observed therein which, in this example, extend on either side of a vertical fault situated at an abscissa x=α. A manual picking of horizons can be performed by an operator by observation of the visual textures on the image, even though such a picking can often be ambiguous depending on the complexity of the image, especially of its discontinuities, and the noise that it contains.

It is desirable to perform an automated picking of horizons using a computerized picking technique in order to enhance the effectiveness and productivity in the processing of the seismic images. However, the propagation techniques commonly implemented to perform such an automated picking can be sent in the wrong direction because of the discontinuities generated in particular by faults.

The operator (seismic image interpreter) is typically required to indicate two points 11, 12 of respective coordinates (x₁, y₁) and (x_(N), y_(N)) in the image, assumed to belong to the same horizon on either side of a fault 10. The difficulty is then to determine the most plausible horizon (represented by a dotted line 15 in FIG. 1) passing through these two points 11, 12 given the image data.

A seismic horizon having a discontinuity between the two abscissae x₁, x_(N) of the points 11, 12 picked by the operator on either side of the fault 10 can be modeled by a curve illustrated by FIG. 2, representing a function τ defined for abscissae x contained between the abscissae x₁ and x_(N). The value τ(x) designates the depth of the seismic horizon at the abscissa x in the case where the image is migrated in depth, or its time position at this abscissa x in the case where the image is migrated in time, with τ(x₁)=Y₁ and τ(x_(N))=y_(N). The function shows an amplitude jump C_(c)=τ₊−τ⁻ at the abscissa αε]x₁, x_(N)[, where

$\tau_{+} = {\lim\limits_{x\rightarrow{\alpha +}}{\tau (x)}}$

is the limit value of the function τ when x tends toward α by higher values and

$\tau_{-} = {\lim\limits_{x\rightarrow{\alpha -}}{\tau (x)}}$

is the limit value of the function τ when x tends toward α by lower values. The amplitude C_(c) is the amplitude of the fault 10 in a continuous domain.

The automated horizon picking therefore consists in determining the best function τ given the seismic image data. These data can be preprocessed to estimate an inclination θ(x, y) at each position x, y of the seismic image. Conventionally, this preprocessing can, for example, consist in searching, at each position x, y, for the direction D_(x,y)=(u, v) according to which the values of the seismic image exhibit a gradient of maximum amplitude and in representing the inclination θ(x, y) by its tangent p(x, y), that is to say the opposite of the cotangent of the angle formed by the direction D_(x,y) of maximum gradient in relation to the x axis of the image (p(x, y)=−u/v), as schematically illustrated for the point 16 in FIG. 1. Naturally, the inclination values obtained in this way at the discontinuity 10 are not reliable.

For the search for the seismic horizon, it is proposed to solve an equation with partial derivatives iteratively. Except at x=α, the function τ and the tangent p of the local inclination are linked by the following equation

∇τ(x)=p(x,τ(x))  (1)

where ∇ is the gradient operator. For the purposes of the explanation, the functions t and p are assumed to be respectively of class C² and C¹ except at x=α. A function is of class C¹ if it is continuous. A function is of class C² if it is derivable and its derivative is of class C¹. Since the equation (1) is nonlinear, the use of an iterative algorithm is necessary to determine the solution searched. Because of the discontinuity, it is proposed to break down the function τ which is of class C² over [x₁, x_(N)]−{α} into the sum of an unknown continuous component {tilde over (τ)} of class C² over [x₁, x_(N)] that satisfies the equation (1) and of a discontinuous jump component i that is constant over [x₁, α[ and also constant over ]α, x_(N)]:

{tilde over (τ)}(x)=−β·C _(c) ·H(α−x)+(1−β)·C _(c) ·H(x−α)  (2)

H being the Heaviside function (H(x)=0 if x≦0 and H(x)=1 otherwise), and β being a real parameter, for example chosen between 0 and 1.

Thus, an exemplary iterative solving algorithm is represented in FIG. 3. The object of the algorithm is to compute a series of continuous components {tilde over (τ)}_(k) which effectively converge toward the solution of the equation (1) for an iteration index k=0, 1, 2, . . .

At initialization 20, where the index k is taken to be equal to zero, the algorithm sets the function τ₀ of the series, for example to a constant value:

{tilde over (τ)}₀(x)=y ₁+β·(y _(N) −y ₁)  (3)

taken between the ordinates y₁ and y_(N) of the points 11, 12 if the parameter 13 is chosen between 0 and 1. The function {circumflex over (τ)}(x) is then set to the value {circumflex over (τ)}(x)=−β·C_(c)·H(α−x)+(1−β)·C_(c)·H(x−α) as described previously. In each iteration of index k of the algorithm, from k=0, the first step 21 consists of an evaluation of the residue:

r _(k)(x)=∇{tilde over (τ)}_(k)(x)−p(x,{tilde over (τ)} _(k)(x)+{tilde over (τ)}(x))  (4)

Then, an update function δ{tilde over (τ)}_(k)(x) is computed in the step 22 by solving the Poisson equation:

∇δ{tilde over (τ)}_(k)−div(r _(k))  (5)

where Δ is the Laplacian operator and div the divergence operator. The equation (5) is solved in the step 22 with conditions at the Dirichlet limits over δ{tilde over (τ)}_(k)(x₁) and δ{tilde over (τ)}_(k)(x_(N)), which take into account the amplitude of the discontinuity on the first iteration and ensure the existence of a single solution. Thus:

$\begin{matrix} \left\{ {{\begin{matrix} {{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{1} \right)}} = {{- \beta} \cdot \left( {y_{N} - y_{1} - C_{c}} \right)}} \\ {{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{N} \right)}} = {\left( {1 - \beta} \right) \cdot \left( {y_{N} - y_{1} - C_{c}} \right)}} \end{matrix}\mspace{14mu} {for}\mspace{14mu} k} = 0} \right. & (6) \\ \left\{ {{\begin{matrix} {{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{1} \right)}} = 0} \\ {{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{N} \right)}} = 0} \end{matrix}\mspace{14mu} {for}\mspace{14mu} k} > 0} \right. & (7) \end{matrix}$

The component {tilde over (τ)}_(k+1) (element k+1 of the series) is computed in the step 23:

{tilde over (τ)}_(k+1)(x)={tilde over (τ)}_(k)(x)+δ{tilde over (τ)}_(k)(x)  (8)

If (test 24) an end-of-iterations criterion is fulfilled (for example: number of iterations reaching a predefined maximum value, distance between the components {tilde over (τ)}_(k+1) and {tilde over (τ)}_(k) below a fixed or adaptive threshold, etc.), the final function τ is computed in the step 26:

τ(x)={tilde over (τ)}_(k)(x)+{circumflex over (τ)}(x)  (9)

Otherwise, the iteration index k is incremented in the step 25 and the next iteration is performed from the abovementioned step 21.

For computer implementation reasons, the solving of the differential equations is performed in a discrete domain, at least for the abscissae x.

This is because, as shown in FIG. 4, the seismic horizons are most often sampled in order to be able to be easily analyzed and stored by computer means. Thus, the function τ cannot be considered to be continuous by pieces. It is a function of a discrete variable.

In this case, the interval [x₁, x_(N)] is sampled over N points numbered from 1 to N in FIG. 4. The notation τ(x_(n)) designates the value of the function τ at the nth discrete abscissa x_(n) (1≦n≦N), with y₁=τ(x₁) and y_(N)=τ(x_(N)). The real discontinuity C_(c), at x=α, cannot be directly observed on the discretized data. Instead, it is possible to observe the “discrete” discontinuity, or fault amplitude in the discrete domain, denoted C_(d)=τ(x_(n) _(α) ₊₁)−τ(x_(n) _(α) ), the position α of the fault being contained between the discrete abscissae x_(n) _(α) ₊₁ and x_(n) _(α) .

A picking algorithm suitable for solving in a discrete domain is presented in FIG. 5. To explain this algorithm, it is initially assumed that the values of n_(α) and C_(d) are known after designation of the points 11, 12 of respective coordinates (x₁, y₁) and (x_(N), y_(N)) by the operator. Compared with the algorithm of the continuous case presented with reference to FIG. 3, the update terms δ{tilde over (τ)}(x_(n) _(α) ) and δ{tilde over (τ)}(x_(n) _(α) ₊₁) have a priori different values, which means that the algorithm has to be adapted for the discrete case. It is in particular necessary to update the jump component {circumflex over (τ)}_(k) of the function τ in the course of the iterations, and the estimation C_(k) of the fault amplitude in the continuous domain, in order to take account of this difference between δ{tilde over (τ)}(x_(n) _(α) ) and δ{tilde over (τ)}(x_(n) _(α) ₊₁).

At initialization 30, where the index k is taken to be equal to zero, the algorithm sets the pseudo-continuous component {tilde over (τ)}₀, an initialization value C₀ for the fault amplitude in the continuous domain and the jump component {circumflex over (τ)}₀, for example according to:

$\begin{matrix} \left\{ \begin{matrix} {{{\overset{\sim}{\tau}}_{0}\left( x_{n} \right)} = {y_{1} + {\beta \cdot \left( {y_{N} - y_{1}} \right)}}} \\ {C_{0} = C_{d}} \\ {{{\hat{\tau}}_{0}\left( x_{n} \right)} = {{{- \beta} \cdot C_{0} \cdot {H\left( {n_{\alpha} + 1 - n} \right)}} + {\left( {1 - \beta} \right) \cdot C_{0} \cdot {H\left( {n - n_{\alpha}} \right)}}}} \end{matrix} \right. & (10) \end{matrix}$

with a parameter β that can be chosen between 0 and 1. The notation H(n) here designates the value of the Heaviside function for an integer argument n (H(n)=0 if n≦0 and H(n)=1 otherwise).

In each iteration of index k of the algorithm, from k=0, the first step 31 consists once again of an evaluation of the residue:

r _(k)(x _(n))=∇{tilde over (τ)}(x _(n))−p(x _(n),{tilde over (τ)}_(k)(x _(n))+{circumflex over (τ)}_(k)(x _(n)))  (11)

Then, the update function δ{tilde over (τ)}_(k) is computed in the step 32 by solving the Poisson equation in the discrete domain:

Δδ{tilde over (τ)}_(k)=−div(r _(k))  (12)

with conditions at the Dirichlet limits:

$\begin{matrix} \left\{ {{\begin{matrix} {{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{1} \right)}} = {{- \beta} \cdot \left( {y_{N} - y_{1} - C_{0}} \right)}} \\ {{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{N} \right)}} = {\left( {1 - \beta} \right) \cdot \left( {y_{N} - y_{1} - C_{0}} \right)}} \end{matrix}\mspace{14mu} {for}\mspace{20mu} k} = {0\text{}{and}}} \right. & (13) \\ \left\{ {{\begin{matrix} {{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{1} \right)}} = {{- \beta} \cdot \left( {C_{k - 1} - C_{k}} \right)}} \\ {{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{N} \right)}} = {\left( {1 - \beta} \right) \cdot \left( {C_{k - 1} - C_{0}} \right)}} \end{matrix}\mspace{14mu} {for}\mspace{20mu} k} > 0} \right. & (14) \end{matrix}$

the parameter C_(k) for k≧1 having been determined on the preceding iteration.

As an example, the Poisson equation (12) can be solved in a frequency domain in the step 32, by using a method based on discrete Fourier transform (DFT) and inverse discrete Fourier transform (DFT⁻¹):

$\begin{matrix} {{\delta \; {\overset{\sim}{\tau}}_{k}} = {{DFT}^{- 1}\left\lbrack {- \frac{{DFT}\left\lbrack {{div}\left( r_{k} \right)} \right\rbrack}{{DFT}\lbrack\Delta\rbrack}} \right\rbrack}} & (15) \end{matrix}$

The discrete Fourier transform may in particular be a discrete sine transform (DST) of type I, in which case the expression (14) becomes:

$\begin{matrix} {{\delta \; {\overset{\sim}{\tau}}_{k}} = {{DST}^{- 1}\left\lbrack {- \frac{{DST}\left\lbrack {{div}\left( r_{k} \right)} \right\rbrack}{{DST}\lbrack\Delta\rbrack}} \right\rbrack}} & (16) \end{matrix}$

The step 33 includes the update of the pseudo-continuous component according to:

{tilde over (τ)}_(k+1)(x _(n))={tilde over (τ)}_(k)(x _(n))+δ{tilde over (τ)}_(k)(x _(n))  (17)

of the fault amplitude in the continuous domain according to:

C _(k+1) =C _(d)−└{tilde over (τ)}_(k+1)(x _(n) _(α) ₊₁)−{tilde over (τ)}_(k+1)(x _(n) _(α) )┘  (18)

and of the jump component according to:

{circumflex over (τ)}_(k+1)(x _(n))=−β·C _(k+1) ·H(n _(α)+1−n)+(1−β)·C _(k+1) ·H(n−n _(α))  (19)

In the step 34, the iteration index k is incremented by one unit.

If (test 35) the end-of-iterations criterion is fulfilled (for example: number of iterations reaching a predefined maximum value, distance between the pseudo-continuous components {tilde over (τ)}_(k) and {tilde over (τ)}_(k+1) below a fixed or adaptive threshold, etc.), the final function τ is computed in the step 36:

τ(x _(n))={tilde over (τ)}_(k)(x _(n))+{circumflex over (τ)}_(k)(x _(n))  (20)

Otherwise, the next iteration is performed from the abovementioned step 31.

It will be observed that the expression (2) of the jump component {circumflex over (τ)}, in the continuous case, can be generalized in the form:

{circumflex over (τ)}_(k)(x)=g _(k)(x)+C _(c) ·H(x−α)  (2′)

where g_(k) is any function, of class C² over the interval [x₁, x_(N)], chosen arbitrarily for each iteration of index k. The equation (2) corresponds to the particular case where g_(k)(x)=−β·C_(c) for any integer index k.

In this more general case, the expression (4) of the residue (step 21 of FIG. 3) becomes:

r _(k)(x)=∇{tilde over (τ)}_(k)(x)+∇g _(k)(x)−p(x,{tilde over (τ)} _(k)(x)+{circumflex over (τ)}(x))  (4′)

(the term ∇g_(k) is null when g_(k) is a constant function).

If the initialization of the continuous component {tilde over (τ)}₀ (step 20 of FIG. 3) is also performed according to any arbitrarily chosen function f of class C² over the interval [x₁, x_(N)]: {tilde over (τ)}₀(x)=f(x), the expression (6)-(7) of the conditions at the Dirichlet limits can be generalized:

$\begin{matrix} \left\{ {{\begin{matrix} {{{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{1} \right)}} = {y_{1} - {f\left( x_{1} \right)} - {g_{0}\left( x_{1} \right)}}}} \\ {{{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{N} \right)}} = {\left( {y_{N} - C_{c}} \right) - {f\left( x_{N} \right)} - {g_{0}\left( x_{N} \right)}}}} \end{matrix}\mspace{14mu} {for}\mspace{14mu} k} = 0} \right. & \left( 6^{\prime} \right) \\ \left\{ {{\begin{matrix} {{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{1} \right)}} = {{g_{k - 1}\left( x_{1} \right)} - {g_{k}\left( x_{1} \right)}}} \\ {{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{N} \right)}} = {{g_{k - 1}\left( x_{N} \right)} - {g_{k}\left( x_{N} \right)}}} \end{matrix}\mspace{14mu} {for}\mspace{14mu} k} > 0} \right. & \left( 7^{\prime} \right) \end{matrix}$

This more general form of the algorithm (with any functions f and g_(k)) can also be transposed to the case of solving in the discrete domain. This is what is represented in FIG. 6.

At initialization 40, where the index k is taken to be equal to zero, the generalized algorithm of FIG. 6 sets the pseudo-continuous component {tilde over (τ)}₀, the initialization value C₀ for the fault amplitude in the continuous domain and the jump component {circumflex over (τ)}₀ according to:

$\begin{matrix} \left\{ \begin{matrix} {{{{\overset{\sim}{\tau}}_{0}\left( x_{n} \right)} = {f\left( x_{n} \right)}}} \\ {{C_{0} = {C_{d} - \left( {{f\left( x_{n_{\alpha} + 1} \right)} - {f\left( x_{n_{\alpha}} \right)}} \right)}}} \\ {{{\hat{\tau}}_{0}\left( x_{n} \right)} = {{g_{0}\left( x_{n} \right)} + {C_{0} \cdot {H\left( {n - n_{\alpha}} \right)}}}} \end{matrix} \right. & \left( 10^{\prime} \right) \end{matrix}$

In each iteration of index k of the algorithm, from k=0, the first step 41 consists of the evaluation of the residue according to:

r _(k)(x _(n))=∇{tilde over (τ)}_(k)(x _(n))−∇g _(k)(x _(n))−p(x _(n),{tilde over (τ)}_(k)(x _(n))+{tilde over (τ)}_(k)(x _(n)))  (11′)

Then, the update function δ{tilde over (τ)}_(k) is computed in the step 42 of solving the Poisson equation in the discrete domain (12) with conditions at the Dirichlet limits, for which the expression is here:

$\begin{matrix} \left\{ \begin{matrix} {{{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{1} \right)}} = {y_{1} - {f\left( x_{1} \right)} - {g_{0}\left( x_{1} \right)}}}} \\ {{{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{N} \right)}} = {y_{N} - {f\left( x_{N} \right)} - {g_{0}\left( x_{N} \right)} - C_{0}}}} \end{matrix} \right. & \left( 13^{\prime} \right) \end{matrix}$

on the first iteration (k=0), and:

$\begin{matrix} \left\{ \begin{matrix} {{{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{1} \right)}} = {{g_{k - 1}\left( x_{1} \right)} - {g_{k}\left( x_{1} \right)}}}} \\ {{{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{N} \right)}} = {{g_{k - 1}\left( x_{N} \right)} - {g_{k}\left( x_{N} \right)} + C_{k - 1} - C_{k}}}} \end{matrix} \right. & \left( 14^{\prime} \right) \end{matrix}$

on the subsequent iterations (k=0).

The step 43 includes the update of the pseudo-continuous component according to (17) of the fault amplitude in the continuous domain according to (18).

Furthermore, the jump component is updated in the step 46 according to:

{tilde over (τ)}_(k+1)(x _(n))=g _(k+1)(x _(n))+C _(k+1) ·H(n−n _(α))  (19′)

then the iteration index k is incremented by one unit in the step 47

If (test 44) the iteration index k has reached its maximum value denoted K−1, the final function τ is computed in the step 45 from the sum of the pseudo-continuous component and of the jump component, for example according to:

τ(x _(n))={tilde over (τ)}_(k)(x _(n))+{circumflex over (τ)}_(k)(x _(n))−g _(k)(x _(n))+g _(k−1)(x _(n))  (20′)

The test 44 may be similar to the test 35 of FIG. 5. One possibility is to focus this test on a comparison of the previous estimation C_(k) of the fault amplitude with the new estimation C_(k+1) taking into account the local slope of function {tilde over (τ)}_(k+1). It is also possible to predefine the total number of iterations K.

FIG. 5 can be seen as a particular case of FIG. 6 in which the function f is constant: f(x)=y₁+β(y_(N)−y₁), and each function g_(k) is also constant: g_(k)(x)=−β·C_(k).

In practice, it is not essential to keep in memory all the values computed during the successive iterations of index k. FIG. 7 thus represents a flow diagram of a solving algorithm equivalent to that of FIG. 6, in which the iteration indices k are no longer involved. The function g can be different from one iteration to another, for example g=−β·C.

Hereinafter, τ_(n) _(α) _(,C) _(d) is used to denote the function τ finally estimated in the step 36 or 45 when the values of the discrete position n_(α) of the fault and its amplitude C_(d) are taken in a discrete domain.

The values to be retained for the pair (n_(α), C_(d)) can be supplied as being assumed known or, more commonly, they can be unknown a priori. In this case, a procedure for searching for the best pair can be undertaken, for example one of those described hereinbelow.

One possible procedure comprises the evaluation of a consistency criterion c(n_(α), C_(d)) from the seismic image and from the function τ_(n) _(α) _(,C) _(d) obtained at the end of K iterations. A number of candidates for the pair (n_(α), C_(d)) can be considered in succession, and the one for which the consistency criterion proves optimum can be retained.

With reference to FIG. 8, the method computes (step 302) the function τ, for example according to the method presented by FIG. 5, 6 or 7, on submission (step 301) of the initial values (n_(α), C_(d)).

Once the seismic horizon line is defined by this function τ, a vector {right arrow over (u)} is defined (step 303) as being the vector representing the discontinuity, that is to say {right arrow over (u)}=[(n_(α),τ(n_(α))),(n_(α)+1,τ(n_(α)+1))]. Depending on the discretization of the workspace, a number of points can be defined along this vector. As an illustration, L points are assumed to be able to be defined, with L being a strictly positive integer.

At each point (out of these L points), a gradient vector (x_(i),y_(i)) of the complete seismic image is computed (step 304), with iε[1 . . . L] integer.

A covariance matrix υ of this gradient field estimated over L points is then computed (step 305) as being:

${\upsilon = \begin{bmatrix} {{var}(X)} & {{cov}\left( {X,Y} \right)} \\ {{cov}\left( {X,Y} \right)} & {{var}(Y)} \end{bmatrix}},$

where cov is the covariance operator and var the variance operator.

The specific values λ₁ and λ₂ of this matrix υ are then computed (step 306). Finally, the consistency value c(n_(α),C_(d)) is defined as being

$\frac{{\lambda_{1} - \lambda_{2}}}{\lambda_{1} + \lambda_{2}}$

(step 307).

It is possible in one embodiment to test all the possible pairs of values (n_(α), C_(d)) in a given space, possibly discretized. For example, it is possible to test 20 values of C_(d) distributed uniformly in the segment [0; 2|τ(x₁)−τ(x_(N))|] and with n_(α) contained within [1 . . . N].

Ultimately, the pair of values (n_(α), C_(d)) retained is the one for which the consistency value c(n_(α), C_(d)) is minimum out of all the pairs tested. Specifically, if the specific values are close, this means in practice that the vector {right arrow over (u)} is positioned over a discontinuity.

It is also possible to carry out the method by considering that C_(d) is constant and takes for example the value |τ(x₁)−τ(x_(N))|. Thus, a minimization of c(n_(α), C_(d)) is performed by having n_(α) vary while C_(d) does not vary. Then, once the value of n_(α) that makes it possible to minimize c(n_(α), C_(d)) is selected, the method is performed again by considering that n_(α) is constant and that C_(d) varies.

This adaptation makes it possible to optimize the computation time and the time to determine the optimum pair (n_(α), C_(d)).

Furthermore, it is found that the convergence toward zero of the incremental conditions |C_(k+1)−C_(k)| is all the faster when the hypothesis concerning C_(d) is close to the real value. Thus, an ad hoc method for detecting the discontinuity parameters may consist, initially, in evaluating the optimum parameter C_(d) for a certain number of possible values of n_(α).

It is therefore possible to envisage, for example, three hypotheses for the parameter C_(d) that are centered on an a priori value C₀ and evenly spaced apart by a pitch h_(C). The horizon following algorithm presented in FIG. 5, 6 or 7 is then implemented for a small number of iterations K (2 or 3). The amplitude C_(d) for which the difference |C_(k+1)−C_(k)| is minimum is then substituted for C₀. The method can be repeated M times by dividing the pitch h_(C) by 2 so as to achieve a satisfactory accuracy.

Obviously, the present invention is not limited to the embodiments described above by way of examples; it extends to other variants.

For example, the consistency value c(n_(α), C_(d)) can be computed in a way that is different from those mentioned above. The object of this computation is to find a decorrelation between the vertical gradient and the horizontal gradient.

The method which has just been described is typically implemented in a computer or a workstation in which a processor executes the above steps under the control of a program, the instructions of which are executed by the processor on seismic images loaded from a storage memory such as a hard disk. 

1. A method for searching for a seismic horizon in a seismic image of the subsoil, the method comprising: designating two points of respective coordinates x₁, y₁ and x_(N), y_(N) in the seismic image as being two points belonging to the horizon sought, an integer number N of discrete abscissae x₁, x₂, . . . , x_(N) being defined between the abscissae x₁, x_(N) of the two designated points; considering a fault position at a discrete abscissa x_(n) _(α) where n_(α) is an integer between 1 and N−1 and a fault amplitude C_(d) in a discrete domain; by taking two functions f and g₀ which can be derived over the interval [x₁, x_(N)], initializing a fault amplitude in a continuous domain with the value C₀=C_(d)−[f(x_(n) _(α) ₊₁)−f(x_(n) _(α) )], a pseudo-continuous component {tilde over (τ)}₀ (x_(n)) and a jump component {circumflex over (τ)}₀(x_(n)) defined over the N discrete abscissae according to {tilde over (τ)}₀(x_(n))=f(x_(n)) and {circumflex over (τ)}₀(x_(n))=g₀(x_(n))+C₀·H(n−n_(α)), where H(·) designates the Heaviside function; performing a number of iterations of a sequence of computation steps for an iteration index k initialized at k=0 then incremented by units, the sequence comprising, for an index k: computing a residue r_(k)(x_(n))=∇{tilde over (τ)}_(k)(x_(n))+∇g_(k)(x_(n))−p(x_(n), {tilde over (τ)}(x_(n))+{circumflex over (τ)}_(k)(x_(n))), where ∇ designates the gradient operator and p(x_(n), y) designates the tangent of an inclination estimated for a position of discrete abscissa x_(n) and of ordinate y in the seismic image; solving a Poisson equation Δ(δ{tilde over (τ)}_(k))=−div(r_(k)) to determine an update term δ{tilde over (τ)}_(k)(x_(n)), with conditions at the Dirichlet limits: $\quad\left\{ \begin{matrix} {{{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{1} \right)}} = {y_{1} - {f\left( x_{1} \right)} - {g_{0}\left( x_{1} \right)}}}} \\ {{{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{N} \right)}} = {y_{N} - {f\left( x_{N} \right)} - {g_{0}\left( x_{N} \right)} - C_{0}}}} \end{matrix} \right.$ on the first iteration and $\quad\left\{ \begin{matrix} {{{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{1} \right)}} = {{g_{k - 1}\left( x_{1} \right)} - {g_{k}\left( x_{1} \right)}}}} \\ {{{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{N} \right)}} = {{g_{k - 1}\left( x_{N} \right)} - {g_{k}\left( x_{N} \right)} + C_{k - 1} - C_{k}}}} \end{matrix} \right.$ on each iteration of index k≧1, where g_(k) is a function that can be derived over the interval [x₁, x_(N)]; updating the pseudo-continuous component according to {tilde over (τ)}_(k+1)(x _(n))={tilde over (τ)}_(k)(x _(n))+δ{tilde over (τ)}_(k)(x _(n)); updating the fault amplitude in the continuous domain according to C _(k+1) =C _(d)−└{tilde over (τ)}_(k+1)(x _(n) _(α) ₊₁)−{tilde over (τ)}_(k+1)(x _(n) _(α) )┘; updating the jump component according to {tilde over (τ)}_(k+1)(x _(n))=g _(k+1)(x _(n))+C _(k+1) ·H(n−n _(α)); if a final value of the iteration index k is reached, computing a function τ_(n) _(α) _(,C) _(d) (x_(n)) representing the ordinate in the seismic image of a horizon estimated as a function of the discrete abscissa x_(n), from a sum of the pseudo-continuous component and of the jump component; and if the final value of the iteration index k is not reached, executing the next iteration of the sequence.
 2. The method according to claim 1, in which the function f is chosen as a constant function.
 3. The method according to claim 2, in which the function f is taken to be equal to y₁+β·(y_(N)−y₁), β being a real number chosen between 0 and
 1. 4. The method according to claim 3, in which each function g_(k) is chosen as a constant function of value −β·C_(k).
 5. The method according to claim 1, in which each function g_(k) is chosen as a constant function.
 6. The method according to claim 1, in which the solving of the Poisson equation uses a discrete Fourier transform DFT and its inverse discrete Fourier transform DFT⁻¹ according to ${\delta \; {\overset{\sim}{\tau}}_{k}} = {{{DFT}^{- 1}\left\lbrack {- \frac{{DFT}\left\lbrack {{div}\left( r_{k} \right)} \right\rbrack}{{DFT}\lbrack\Delta\rbrack}} \right\rbrack}.}$
 7. The method according to claim 6, in which the discrete Fourier transform is a discrete sine transform of type I.
 8. The method according to claim 1, also comprising: evaluating a consistency criterion for the considered values of the discrete abscissa n_(α) and of the fault amplitude C_(d) in the discrete domain.
 9. The method according to claim 8, in which the evaluation of the consistency criterion comprises: computing the specific values λ₁ and λ₂ of a covariance matrix of a gradient field estimated from the seismic image at a given number of points of the segment [(n_(α), τ_(n) _(α) _(,C) _(d) (n_(α))), (n_(α)+1, τ_(n) _(α) _(,C) _(d) (n_(α)+1))]; and evaluating the consistency criterion c(n_(α), C_(d)) for the considered values of the discrete abscissa n_(α) and of the fault amplitude C_(d) in the discrete domain according to ${c\left( {n_{\alpha},C_{d}} \right)} = {\frac{{\lambda_{1} - \lambda_{2}}}{\lambda_{1} + \lambda_{2}}.}$
 10. The method according to claim 8, also comprising: identifying a pair of values of the discrete abscissa n_(α) and of the fault amplitude C_(d) in the discrete domain for which the consistency criterion is optimum; and picking a horizon defined by the function τ_(n) _(α) _(,C) _(d) (n) computed for the pair giving the optimum consistency criterion.
 11. The method according to claim 1, also comprising: evaluating a first consistency criterion for the considered values of the discrete abscissa n_(α), the fault amplitude C_(d) in the discrete domain being fixed; identifying the value of the discrete abscissa n_(α) in the discrete domain for which the first consistency criterion is optimum; evaluating a second consistency criterion for the considered values of the fault amplitude C_(d) in the discrete domain, the value of the discrete abscissa n_(α) being the identified value of n_(α); identifying the value of the fault amplitude C_(d) in the discrete domain for which the second consistency criterion is optimum.
 12. The method according to claim 1, also comprising: a) evaluating a consistency criterion for a set of values out of the considered values of the discrete abscissa n_(α) and values of the fault amplitude C_(d) in the discrete domain spaced apart by a pitch h_(C) and centered on a central amplitude value C_(d0); b) computing |C_(K)−C_(K−1)| for a number K of iterations; c) reiterating the steps a) to b) M times, by replacing the central amplitude value C_(d0) with a fault amplitude value for which the value of |C_(K+1)−C_(K)| is minimum out of the values of the fault amplitude C_(d) evaluated, and by replacing the distance value of h_(C) with a value less than the distance value on the preceding iteration; and d) identifying the value of the discrete abscissa n_(α) out of the considered values of the discrete abscissa for which the consistency criterion is optimum, the fault amplitude value C_(d) being a value for which the value of |C_(K+1)−C_(K)| is minimum out of the values of the fault amplitude C_(d) evaluated in the iteration M.
 13. A computer program for a subsoil seismic image processing system, the program comprising instructions for implementing during an execution of the program by a computer of the seismic image processing system the following steps: receiving two designated points of respective coordinates x₁, y₁ and x_(N), y_(N) in the seismic image as being two points belonging to the horizon sought, an integer number N of discrete abscissae x₁, x₂, . . . , x_(N) being defined between the abscissae x₁, x_(N) of the two designated points; considering a fault position at a discrete abscissa x_(n) _(α) where n_(α) is an integer between 1 and N−1 and a fault amplitude C_(d) in a discrete domain; by taking two functions f and g₀ which can be derived over the interval [x₁, x_(N)], initializing a fault amplitude in a continuous domain with the value C₀=C_(d)−[f(x_(n) _(α) ₊₁)−f(x_(n) _(α) )], a pseudo-continuous component {tilde over (τ)}₀(x_(n)) and a jump component {circumflex over (τ)}₀(x_(n)) defined over the N discrete abscissae according to {tilde over (τ)}₀(x_(n))=f(x_(n)) and {circumflex over (τ)}₀(x_(n))=g₀(x_(n))+C₀·H(n−n_(α)), where H(·) designates the Heaviside function; performing a number of iterations of a sequence of computation steps for an iteration index k initialized at k=0 then incremented by units, the sequence comprising, for an index k: computing a residue r_(k)(x_(n))=∇{tilde over (τ)}_(k)(x_(n))+∇g_(k)(x_(n))−p(x_(n), {tilde over (τ)}_(k)(x_(n))+{tilde over (τ)}_(k) (x_(n))), where ∇ designates the gradient operator and p(x_(n), y) designates the tangent of an inclination estimated for a position of discrete abscissa x_(n) and of ordinate y in the seismic image; solving a Poisson equation Δ(δ{tilde over (τ)}_(k))=−div(r_(k)) to determine an update term δ{tilde over (τ)}_(k)(x_(n)), with conditions at the Dirichlet limits: $\quad\left\{ \begin{matrix} {{{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{1} \right)}} = {y_{1} - {f\left( x_{1} \right)} - {g_{0}\left( x_{1} \right)}}}} \\ {{{\delta \; {{\overset{\sim}{\tau}}_{0}\left( x_{N} \right)}} = {y_{N} - {f\left( x_{N} \right)} - {g_{0}\left( x_{N} \right)} - C_{0}}}} \end{matrix} \right.$ on the first iteration and $\quad\left\{ \begin{matrix} {{{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{1} \right)}} = {{g_{k - 1}\left( x_{1} \right)} - {g_{k}\left( x_{1} \right)}}}} \\ {{{\delta \; {{\overset{\sim}{\tau}}_{k}\left( x_{N} \right)}} = {{g_{k - 1}\left( x_{N} \right)} - {g_{k}\left( x_{N} \right)} + C_{k - 1} - C_{k}}}} \end{matrix} \right.$ on each iteration of index k≧1, where g_(k) is a function that can be derived over the interval [x₁,x_(N)]; updating the pseudo-continuous component according to {tilde over (τ)}_(k+1)(x _(n))={tilde over (τ)}_(k)(x _(n))+δ{tilde over (τ)}_(k)(x _(n)); updating the fault amplitude in the continuous domain according to C _(k+1) =C _(d)−└{tilde over (τ)}_(k+1)(x _(n) _(α) ₊₁)−{tilde over (τ)}_(k+1)(x _(n) _(α) )┘; updating the jump component according to {circumflex over (τ)}_(k+1)(x_(n))=g_(k+1)(x_(n))+C_(k+1)·H(n−n_(α)); if a final value of the iteration index k is reached, computing a function τ_(n) _(α) _(,C) _(d) (x_(n)) representing the ordinate in the seismic image of a horizon estimated as a function of the discrete abscissa x_(n), from a sum of the pseudo-continuous component and of the jump component; and if the final value of the iteration index k is not reached, executing the next iteration of the sequence. 